//***********************************************************************
//	File:		SpiderMine.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Enemy.h"
#include "Player.h"
class SpiderMine :
	public Enemy
{
public:
	SpiderMine(float posX = -1, float posY = -1);
	~SpiderMine() = default;
	SpiderMine(const SpiderMine&) = default; 
	SpiderMine& operator =(const SpiderMine&) = default;

	//Type 
	int GetType() const { return ENT_SPIDERMINE; }

	//Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;
	void ModifyHealth(float hpAmount);
	void ApplyFriction(float dt);

	void Attack(float dt);
	void Move(void);

	//Accessors
	bool	GetActive						(void)				{ return m_bActive; }
	float	GetDestructionTimer				(void)				{ return m_fDestructionTimer; }
	float	GetDestructionTimerLength		(void)				{ return m_fDestructionTimerLength; }

	//Mutators
	void	SetActive						(bool a)			{ m_bActive = a; }
	void	SetDestructionTimer				(float desttim)		{ m_fDestructionTimer = desttim; }
	void	SetDestructionTimerLength		(float dtl)			{ m_fDestructionTimerLength = dtl; }


private:
	bool	m_bActive						= false; 
	float	m_fDestructionTimer				= 0.0f; 
	float	m_fDestructionTimerLength		= 0.0f; 
	Player* mTarget;
};

